// vector math stuff :D
#ifndef _VECTOR_H_INC_
#define _VECTOR_H_INC_

#include <math.h>
#include <string>
#include <iostream>

class Vector {
private:
	float x, y, z;
	float dir;
	float len;

	void calcDir();
	void calcLen();


public:
	Vector();
	Vector(float x, float y, float z);
	Vector(float dir, float len);
	
	// overloaded operators
	Vector operator+(Vector v2);
	Vector operator-(Vector v2);
	Vector operator*(Vector v2);
	Vector operator/(Vector v2);

	void operator+=(Vector v2);
	void operator-=(Vector v2);
	void operator*=(Vector v2);
	void operator/=(Vector v2);

	Vector operator+(int i2);
	Vector operator-(int i2);
	Vector operator*(int i2);
	Vector operator/(int i2);

	void operator*=(int i2);
	void operator+=(int i2);
	void operator-=(int i2);
	void operator/=(int i2);

	float getX();
	float getY();
	float getZ();

	void normalize();

	std::string toString();
	void set(float x, float y, float z);

};

#endif